Users of programming languages normally discover the programming language features (e.g., semantic, lexical, or syntactic features) through a language guide. The language guide needs to be updated as the programming language evolves. Implementation of new features of the programming language may be difficult because the new features and a corresponding help guide are usually owned by different software development teams and may be released through different vehicles. Some platforms, for example, an operating system such as UNIX, provide a help system for exposing feature information to the users. In such an approach, the help content may not reflect implementation of the feature because help content is developed independent of implementation details for the specific feature.
Language metadata may be used to drive language implementation and allow users to discover programming language features. Besides feature discovery, this metadata may be used to control a particular programming language feature. In some programming languages, for example, C# and Java, usage of language metadata may be limited to program data structures only.